home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / ms_dos / dmove86 / abssec.a86 next >
Text File  |  1993-11-30  |  1KB  |  92 lines

  1. ; ディスクの直接操作関数
  2.  
  3. CGROUP    group    TEXT
  4.  
  5. TEXT    CSEG
  6.  
  7. ;
  8. ;rdabssec(void far *buf, unsigned short sector, int drive)
  9. ;
  10. ;BXAX=buf, CX=sector,DX=drive
  11. ;
  12. ;リターン値の上位8ビットがフラグ、下位8ビットがALの値
  13.  
  14. rdabssec_::
  15.  
  16.     push    DS
  17.     push    ES
  18.     push    BX
  19.     push    CX
  20.     push    DX
  21.     push    SI
  22.     push    DI
  23.     push    BP
  24.  
  25.     push    AX        ;AX:BX <= buf
  26.     mov    AX,BX
  27.     pop    BX
  28.  
  29.     mov    DS,AX        ;DS:BX <= buf
  30.     
  31.     mov    AL,DL        ;AL <= drive
  32.     mov    DX,CX        ;DX <= sector
  33.     mov    CX,1        ;読み込むのは1セクターのみ
  34.  
  35.     int    25H
  36.  
  37.     pop    CX
  38.  
  39.     pop    BP
  40.     pop    DI
  41.     pop    SI
  42.     pop    DX
  43.     pop    CX
  44.     pop    BX
  45.     pop    ES
  46.     pop    DS
  47.  
  48.     sbb    AH,AH
  49.  
  50.     ret
  51.  
  52. ;
  53. ;wrabssec(void far *buf, unsigned short sector, int drive)
  54. ;
  55. ;BXAX=buf, CX=sector,DX=drive
  56. ;
  57. ;リターン値の上位8ビットがフラグ、下位8ビットがALの値
  58.  
  59. wrabssec_::
  60.  
  61.     push    DS
  62.     push    CX
  63.     push    DX
  64.     push    SI
  65.     push    DI
  66.     push    BP
  67.  
  68.     push    AX        ;AX:BX <= buf
  69.     mov    AX,BX
  70.     pop    BX
  71.  
  72.     mov    DS,AX        ;DS:BX <= buf
  73.     
  74.     mov    AL,DL        ;AL <= drive
  75.     mov    DX,CX        ;DX <= sector
  76.     mov    CX,1        ;読み込むのは1セクターのみ
  77.  
  78.     int    26H
  79.  
  80.     pop    CX
  81.  
  82.     pop    BP
  83.     pop    DI
  84.     pop    SI
  85.     pop    DX
  86.     pop    CX
  87.     pop    DS
  88.  
  89.     sbb    AH,AH
  90.  
  91.     ret
  92.